home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AOL File Library: 4,401 to 4,500
/
aol-file-protocol-4400-4401-to-4500.zip
/
AOLDLs
/
PDA-Newton Development
/
ND+ Dive Program Source & info
/
diveplan.sit
/
diveplan
/
Dive.bas
next >
Wrap
BASIC Source File
|
1994-09-05
|
14KB
|
431 lines
list
0001 DIM RGD0[25],ASIT[25],MSIT[25],NRGD[25],AMD[25],MMD[25],RNT[25],ABT[25],MBT[
25],ATBT[25],MTBT[25],RGD[25],DM[25]
0010 CLS
0020 LET DivDat={}
0021 LET z="a"
0022 LET DivDat.z=z
0023 LET DivDat.RGD0=RGD0
0024 LET DivDat.ASIT=ASIT
0025 LET DivDat.MSIT=MSIT
0026 LET DivDat.NRGD=NRGD
0027 LET DivDat.AMD=AMD
0028 LET DivDat.MMD=MMD
0029 LET DivDat.RNT=RNT
0030 LET DivDat.ABT=ABT
0031 LET DivDat.MBT=MBT
0033 LET DivDat.MTBT=MTBT
0034 LET DivDat.RGD=RGD
0035 LET DivDat.DM=DM
0050 OPEN cha,"Dives.txt",z
0051 IF FSTAT=0 THEN GOTO 100
0052 PRINT "Creating Dive.txt File..."
0053 CREATE cha,"Dives.txt",z
0054 OPEN cha,"Dives.txt",z
0055 LET DivDat.z="a"
0056 PUT cha,DivDat
0057 LET DivDat.z="b"
0058 PUT cha,DivDat
0059 LET DivDat.z="c"
0060 PUT cha,DivDat
0061 LET DivDat.z="x"
0062 PUT cha,DivDat
0063 LET DivDat.z="y"
0064 PUT cha,DivDat
0065 LET DivDat.z="z"
0066 PUT cha,DivDat
0100 LET W0Spec.ViewBounds={top:2,bottom:14,left:4,right:235}
0101 LET W0Spec.ViewFont={family:'newyork,face:0,size:10}
0102 LET W0Spec.ViewJustify=2
0103 WINDOW W0Num,W0Spec
0104 SHOW W0Num
0105 LET v="0.6b"
0106 LET v0="Dive Planner ver"&v&" R. Van Alstyne"
0107 WPRINT W0Num,v0
0110 LET W1Spec.ViewBounds={top:18,bottom:126,left:5,right:135}
0111 LET W1Spec.ViewFont={family:'newyork,face:0,size:10}
0112 LET W1Spec.ViewJustify=0
0113 WINDOW W1Num,W1Spec
0114 SHOW W1Num
0120 LET W2Spec.ViewBounds={top:18,bottom:30,left:139,right:176}
0121 LET W2Spec.ViewFont={family:'geneva,face:0,size:10}
0122 LET W2Spec.ViewJustify=2
0123 LET W2Spec.GOTO=0500
0124 WINDOW W2Num,W2Spec
0125 SHOW W2Num
0126 WPRINT W2Num,"RepGro"
0130 LET W3Spec.ViewBounds={top:18,bottom:30,left:180,right:214}
0131 LET W3Spec.ViewFont={family:'geneva,face:0,size:10}
0132 LET W3Spec.ViewJustify=2
0133 LET W3Spec.GOTO=0550
0134 WINDOW W3Num,W3Spec
0135 SHOW W3Num
0136 WPRINT W3Num,"SurInt"
0140 LET W4Spec.ViewBounds={top:34,bottom:46,left:139,right:179}
0141 LET W4Spec.ViewFont={family:'geneva,face:0,size:10}
0142 LET W4Spec.ViewJustify=2
0143 LET W4Spec.GOTO=0600
0144 WINDOW W4Num,W4Spec
0145 SHOW W4Num
0146 WPRINT W4Num,"MaxDep"
0150 LET W5Spec.ViewBounds={top:34,bottom:46,left:183,right:220}
0151 LET W5Spec.ViewFont={family:'geneva,face:0,size:10}
0152 LET W5Spec.ViewJustify=2
0153 LET W5Spec.GOTO=0650
0154 WINDOW W5Num,W5Spec
0155 SHOW W5Num
0156 WPRINT W5Num,"BotTim"
0160 LET W6Spec.ViewBounds={top:50,bottom:62,left:227,right:234}
0161 LET W6Spec.ViewFont={family:'geneva,face:0,size:10}
0162 LET W6Spec.ViewJustify=2
0163 LET W6Spec.GOTO=0900
0164 WINDOW W6Num,W6Spec
0165 SHOW W6Num
0166 WPRINT W6Num,"="
0170 LET W7Spec.ViewBounds={top:50,bottom:62,left:139,right:160}
0171 LET W7Spec.ViewFont={family:'geneva,face:0,size:10}
0172 LET W7Spec.ViewJustify=2
0173 LET W7Spec.GOTO=950
0174 WINDOW W7Num,W7Spec
0175 SHOW W7Num
0176 WPRINT W7Num,"Msg"
0180 LET W8Spec.ViewBounds={top:66,bottom:78,left:139,right:160}
0181 LET W8Spec.ViewFont={family:'geneva,face:0,size:10}
0182 LET W8Spec.ViewJustify=2
0183 LET W8Spec.GOTO=0750
0184 WINDOW W8Num,W8Spec
0185 SHOW W8Num
0186 WPRINT W8Num,"Prv"
0190 LET W9Spec.ViewBounds={top:66,bottom:78,left:164,right:183}
0191 LET W9Spec.ViewFont={family:'geneva,face:0,size:10}
0192 LET W9Spec.ViewJustify=2
0193 LET W9Spec.GOTO=0752
0194 WINDOW W9Num,W9Spec
0195 SHOW W9Num
0196 WPRINT W9Num,"Nxt"
0200 LET W10Spec.ViewBounds={top:66,bottom:78,left:187,right:206}
0201 LET W10Spec.ViewFont={family:'geneva,face:0,size:10}
0202 LET W10Spec.ViewJustify=2
0203 LET W10Spec.GOTO=0762
0204 WINDOW W10NUM,W10Spec
0205 SHOW W10Num
0206 WPRINT W10Num,"Cnt"
0210 LET W11Spec.ViewBounds={top:66,bottom:78,left:210,right:234}
0211 LET W11Spec.ViewFont={family:'geneva,face:0,size:10}
0212 LET W11Spec.ViewJustify=2
0213 LET W10Spec.GOTO=0754
0214 WINDOW W11Num,W11Spec
0215 SHOW W11Num
0216 WPRINT W11Num,"Jmp"
0220 LET W12Spec.ViewBounds={top:82,bottom:94,left:139,right:152}
0221 LET W12Spec.ViewFont={family:'geneva,face:0,size:10}
0222 LET W12Spec.ViewJustify=2
0223 LET W12Spec.GOTO=0800
0224 WINDOW W12Num,W12Spec
0225 SHOW W12Num
0226 WPRINT W12Num,"Ld"
0230 LET W13Spec.ViewBounds={top:82,bottom:94,left:156,right:171}
0231 LET W13Spec.ViewFont={family:'geneva,face:0,size:10}
0232 LET W13Spec.ViewJustify=2
0233 LET W13Spec.GOTO=0825
0234 WINDOW W13Num,W13Spec
0235 SHOW W13Num
0236 WPRINT W13Num,"Sv"
0240 LET W14Spec.ViewBounds={top:82,bottom:94,left:175,right:190}
0241 LET W14Spec.ViewFont={family:'geneva,face:0,size:10}
0242 LET W14Spec.ViewJustify=2
0243 LET W14Spec.GOTO=0850
0244 WINDOW W14Num,W14Spec
0245 SHOW W14Num
0246 WPRINT W14Num,"Tr"
0290 LET W98Spec.ViewBounds={top:50,bottom:62,left:214,right:223}
0291 LET W98Spec.ViewFont={family:'geneva,face:0,size:10}
0292 LET W98Spec.ViewJustify=2
0293 LET W98Spec.GOTO=1000
0294 WINDOW W98Num,W98Spec
0295 rem SHOW W98Num
0296 rem WPRINT W98Num,"?"
0300 LET W99Spec.ViewBounds={top:130,bottom:255,left:5,right:234}
0301 LET W99Spec.ViewFont={family:'newyork,face:0,size:10}
0302 LET W99Spec.ViewJustify=0
0303 WINDOW W99Num,W99Spec
0304 SHOW W99Num
0400 LET DN=0
0401 LET RGD0[DN]=0
0402 LET ASIT[DN]=0
0403 LET MSIT[DN]=0
0404 LET NRGD[DN]=0
0405 LET AMD[DN]=0
0406 LET MMD[DN]=0
0407 LET RNT[DN]=0
0408 LET ABT[DN]=0
0409 LET MBT[DN]=0
0410 LET ATBT[DN]=0
0411 LET MTBT[DN]=0
0412 LET RGD[DN]=0
0413 LET DM[DN]=0
0414 GOTO 0900 //
0500 LET t=[" ","A","B","C","D","E","F","G","H","I","J","K","L","M"]
0501 HWINPUT t9$,"Repetative Group",t
0502 LET t0=-1
0503 FOR t1=0 TO 13
0504 IF t9$<>t[t1] THEN GOTO 0507
0505 LET t0=t1
0506 LET t1=13
0507 NEXT t1
0508 IF t0=-1 THEN GOTO 0501
0509 LET RGD0[DN]=t0
0510 IF RGD0[DN]>0 THEN STOP
0511 LET ASIT[DN]=0
0512 LET MSIT[DN]=0
0513 LET NRGD[DN]=0
0514 STOP
0550 ON RGD0[DN] GOTO 0551,0553,0555,0557,0559,0561,0563,0565,0567,0569,0571,0573
,0575
0551 LET t=["10","721"]
0552 GOTO 0576
0553 LET t=["10","200","721"]
0554 GOTO 0576
0555 LET t=["10","100","289","721"]
0556 GOTO 0576
0557 LET t=["10","70","159","349","721"]
0558 GOTO 0576
0559 LET t=["10","55","118","203","393","721"]
0560 GOTO 0576
0561 LET t=["10","46","90","149","238","426","721"]
0562 GOTO 0576
0563 LET t=["10","41","76","120","179","266","456","721"]
0564 GOTO 0576
0565 LET t=["10","37","67","102","144","201","290","480","721"]
0566 GOTO 0576
0567 LET t=["10","34","60","90","123","165","224","313","502","721"]
0568 GOTO 0576
0569 LET t=["10","32","55","80","108","141","185","243","341","521","721"]
0570 GOTO 0576
0571 LET t=["10","29","50","72","96","124","159","202","260","349","539","721"]
0572 GOTO 0576
0573 LET t=["10","27","46","65","86","110","140","174","217","276","363","553","7
21"]
0574 GOTO 0576
0575 LET t=["10","26","43","60","79","100","126","155","189","233","290","379","5
69","721"]
0576 HWINPUT t9$,"Surface Interval",t
0577 LET t0=-1
0578 FOR t1=0 TO RGD0[DN]
0579 IF STRINGTONUMBER(t9$)>=STRINGTONUMBER(t[t1]) THEN GOTO 0582
0580 LET t0=t1
0581 LET t1=RGD0[DN]
0582 NEXT t1
0583 IF t0=-1 THEN GOTO 0576
0584 LET ASIT[DN]=STRINGTONUMBER(t9$)
0585 LET MSIT[DN]=STRINGTONUMBER(t[t0-1])
0586 LET NRGD[DN]=RGD0[DN]-t0+1
0587 STOP
0600 LET t=["15","20","25","30","35","40","50","60","70","80","90","100","110","1
20","130"]
0601 HWINPUT t9$,"Maximum Depth",t
0602 LET t0=-1
0603 FOR t1=0 TO 14
0604 IF STRINGTONUMBER(t9$)>STRINGTONUMBER(t[t1]) THEN GOTO 0607
0605 LET t0=t1
0606 LET t1=14
0607 NEXT t1
0608 IF t0=-1 THEN GOTO 0601
0609 LET AMD[DN]=STRINGTONUMBER(t9$)
0610 LET MMD[DN]=STRINGTONUMBER(t[t0])
0611 ON t0+1 GOTO 0612,0612,0612,0612,0612,0612,0614,0616,0618,0620,0622,0624,062
6,0628,0630
0612 LET t=["0","7","17","25","37","49","61","73","87","101","116","138","161","1
87"]
0613 GOTO 0631
0614 LET t=["0","6","13","21","29","38","47","56","66","76","87","99","111","124"
]
0615 GOTO 0631
0616 LET t=["0","5","11","17","24","30","36","44","52","61","70","79","88","97"]
0617 GOTO 0631
0618 LET t=["0","4","9","15","20","26","31","37","43","50","57","64","72","80"]
0619 GOTO 0631
0620 LET t=["0","4","8","13","18","23","28","32","38","43","48","54","61","68"]
0621 GOTO 0631
0622 LET t=["0","3","7","11","16","20","24","29","33","38","43","47","53","58"]
0623 GOTO 0631
0624 LET t=["0","3","7","10","14","18","22","26","30","34","38","43","48","52"]
0625 GOTO 0631
0626 LET t=["0","3","6","10","13","16","20","24","27","31","34","38","42","47"]
0627 GOTO 0631
0628 LET t=["0","3","6","9","12","15","18","21","25","28","32","35","39","43"]
0629 GOTO 0631
0630 LET t=["0","3","6","8","11","13","16","19","22","25","28","31","35","38"]
0631 LET RNT[DN]=STRINGTONUMBER(t[NRGD[DN]])
0632 STOP
0650 LET t=["15","20","25","30","35","40","50","60","70","80","90","100","110","1
20","130"]
0651 FOR t0=0 TO 14
0652 IF MMD[DN]<>STRINGTONUMBER(t[t0]) THEN GOTO 0655
0653 LET t1=t0
0654 LET t0=14
0655 NEXT t0
0656 ON t1+1 GOTO 0657,0659,0661,0663,0665,0667,0669,0671,0673,0675,0677,0679,068
1,0683,0685
0657 LET t=["35","70","110","160","225","350"]
0658 GOTO 0686
0659 LET t=["25","50","75","100","135","180","240","325"]
0660 GOTO 0686
0661 LET t=["20","35","55","75","100","125","160","195","245","315"]
0662 GOTO 0686
0663 LET t=["15","30","45","60","75","90","120","145","170","205","250"]
0664 GOTO 0686
0665 LET t=["5","15","25","40","50","60","80","100","120","140","160","190","220"
]
0666 GOTO 0686
0667 LET t=["5","15","25","30","40","50","70","80","100","110","130","150"]
0668 GOTO 0686
0669 LET t=["0","10","15","25","30","40","50","60","70","80"]
0670 GOTO 0686
0671 LET t=["0","10","15","20","25","30","40","50"]
0672 GOTO 0686
0673 LET t=["0","5","10","15","20","30","35","40"]
0674 GOTO 0686
0675 LET t=["0","5","10","15","20","25","30"]
0676 GOTO 0686
0677 LET t=["0","5","10","12","15","20","25"]
0678 GOTO 0686
0679 LET t=["0","5","7","10","15","20"]
0680 GOTO 0686
0681 LET t=["0","0","5","10","13"]
0682 GOTO 0686
0683 LET t=["0","0","5","10"]
0684 GOTO 0686
0685 LET t=["0","0","5"]
0686 LET t0=[5,7,9,10,12,11,9,7,7,6,6,5,4,3,2]
0687 FOR t2=0 TO t0[t1]
0688 LET t[t2]=NUMBERSTR(STRINGTONUMBER(t[t2])-RNT[DN])
0689 NEXT t2
0690 HWINPUT t9$,"Bottom Time",t
0691 LET t2=-1
0692 FOR t3=0 TO t0[t1]
0693 IF STRINGTONUMBER(t9$)>STRINGTONUMBER(t[t3]) THEN GOTO 0696
0694 LET t2=t3
0695 LET t3=t0[t1]
0696 NEXT t3
0697 IF t2=-1 THEN GOTO 0690
0698 LET ABT[DN]=STRINGTONUMBER(t9$)
0699 LET MBT[DN]=STRINGTONUMBER(t[t2])
0700 LET ATBT[DN]=RNT[DN]+ABT[DN]
0701 LET MTBT[DN]=RNT[DN]+MBT[DN]
0702 LET RGD[DN]=t2+1
0703 STOP
0750 IF DN>0 THEN LET DN=DN-1
0751 GOTO 0900 //
0752 IF DN<24 THEN LET DN=DN+1
0753 GOTO 0900 //
0754 HWINPUT t9$,"Enter jump",["Forward 10","Forward 5","Backward 5","Backward 10
"]
0755 IF t9$="Forward 10" THEN LET DN=DN+10
0756 IF t9$="Forward 5" THEN LET DN=DN+5
0757 IF t9$="Backward 5" THEN LET DN=DN-5
0758 IF t9$="Backward 10" THEN LET DN=DN-10
0759 IF DN>24 THEN DN=24
0760 IF DN<0 THEN DN=0
0761 GOTO 0900 //
0762 IF DN>0 THEN LET RGD0[DN]=RGD[DN-1]
0763 STOP
0800 HWINPUT z,"Dive group",["a","b","c","x","y","z"]
0801 LET DivDat.z=z
0802 OPEN cha,"Dives.txt",z
0803 IF FSTAT<>0 THEN STOP
0804 GET cha,DivDat
0805 IF FSTAT<>0 THEN STOP
0806 LET RGD0=DivDat.RGD0
0807 LET ASIT=DivDat.ASIT
0808 LET MSIT=DivDat.MSIT
0809 LET NRGD=DivDat.NRGD
0810 LET AMD=DivDat.AMD
0811 LET MMD=DivDat.MMD
0812 LET RNT=DivDat.RNT
0813 LET ABT=DivDat.ABT
0814 LET MBT=DivDat.MBT
0815 LET ATBT=DivDat.ATBT
0816 LET MTBT=DivDat.MTBT
0817 LET RGD=DivDat.RGD
0818 LET DM=DivDat.DM
0819 GOTO 0900 //
0825 HWINPUT z,"Dive group",["a","b","c","x","y","z"]
0826 LET DivDat.z=z
0827 OPEN cha,"Dives.txt",z
0828 LET DivDat.ATBT=ATBT
0829 LET DivDat.RGD0=RGD0
0830 LET DivDat.ASIT=ASIT
0831 LET DivDat.MSIT=MSIT
0832 LET DivDat.NRGD=NRGD
0833 LET DivDat.AMD=AMD
0834 LET DivDat.MMD=MMD
0835 LET DivDat.RNT=RNT
0836 LET DivDat.ABT=ABT
0837 LET DivDat.MBT=MBT
0838 LET DivDat.ATBT=ATBT
0839 LET DivDat.MTBT=MTBT
0840 LET DivDat.RGD=RGD
0841 LET DivDat.DM=DM
0842 PUT cha,DivDat
0843 IF FSTAT<>0 THEN STOP
0844 BEEP
0845 BEEP
0846 STOP
0850 LET n0="Dive#"&DN&chr(13)
0851 IF RGD0[DN]<>0 THEN LET n0=n0&"Repetative Group Designation="&chr(64+RGD0[DN
])&chr(13)
0852 IF RGD0[DN]<>0 THEN LET n0=n0&"Surface Interval Time="&ASIT[DN]&chr(13)
0853 LET n0=n0&"Maximum Depth="&AMD[DN]&chr(13)
0854 IF RGD0[DN]<>0 THEN LET n0=n0&"Residual NitrogenTime="&RNT[DN]&chr(13)
0855 LET n0=n0&"Bottom Time="&ABT[DN]&chr(13)
0856 IF RGD0[DN]<>0 THEN LET n0=n0&"Total Bottom Time="&ATBT[DN]&chr(13)
0857 LET n0=n0&"Repetative Group Designation="&chr(64+RGD[DN])
0858 WPRINT W99Num,n0
0859 STOP
0900 REM
0901 LET DivSpe="Dive #"&DN&":"&chr(13)
0902 LET DivSpe=DivSpe&" RepGroDes="
0903 IF RGD0[DN]<>0 THEN LET DivSpe=DivSpe&chr(64+RGD0[DN])
0904 LET DivSpe=DivSpe&chr(13)
0905 LET DivSpe=DivSpe&" SurIntTim="&ASIT[DN]&" ("&MSIT[DN]&")"
0906 LET DivSpe=DivSpe&chr(13)
0907 LET DivSpe=DivSpe&" NewResGroDes="
0908 IF NRGD[DN]<>0 THEN LET DivSpe=DivSpe&chr(64+NRGD[DN])
0909 LET DivSpe=DivSpe&chr(13)
0910 LET DivSpE=DivSpe&" MaxDep="&AMD[DN]&" ("&MMD[DN]&")"
0911 LET DivSpe=DivSpe&chr(13)
0912 LET DivSpe=DivSpe&" ResNitTim="&RNT[DN]
0913 LET DivSpe=DivSpe&chr(13)
0914 LET DivSpe=DivSpe&" BotTim="&ABT[DN]&" ("&MBT[DN]&")"
0915 LET DivSpe=DivSpe&chr(13)
0916 LET DivSpe=DivSpe&" TotBotTim="&ATBT[DN]&" ("&MTBT[DN]&")"
0917 LET DivSpe=DivSpe&chr(13)
0918 LET DivSpe=DivSpe&" ResGroDes="
0919 IF RGD[DN]<>0 THEN LET DivSpe=DivSpe&chr(64+RGD[DN])
0920 WPRINT W1Num,DivSpe
0921 IF DM[DN]<>0 THEN WPRINT W99Num,DM[DN]
0922 STOP
0950 HWINPUT DM1,"Date"
0951 HWINPUT DM2,"Location"
0952 HWINPUT DM3,"Entry",["Boat","Shore"]
0953 IF DM3="Boat" THEN HWINPUT DM30,"Boat"
0954 HWINPUT DM4,"Goal",["Wreck","Reef"]
0955 IF DM4="Wreck" THEN HWINPUT DM40,"Wreck"
0956 HWINPUT DM5,"Surface conditions",["Good","Fair","Poor"]
0957 HWINPUT DM6,"Visibility",["Good","Fair","Poor"]
0958 HWINPUT DM7,"Comments"
0959 LET DivMsg="On "&DM1&" I dove at "&DM2&"."&chr(13)
0960 LET DivMsg=DivMsg&"I made a "&DM3&" dive "
0961 IF DM3="Boat" THEN LET DivMsg=DivMsg&"from the "&DM30&" "
0962 LET DivMsg=DivMsg&"on a "&DM4
0963 IF DM4="Wreck" THEN LET DivMsg=DivMsg&" called the "&DM40
0964 LET DivMsg=DivMsg&". Surface conditions were "&DM5&", and visibility was "&
DM6&"."
0965 IF DM7<>"" THEN LET DivMsg=DivMsg&chr(13)&"In addition, "&DM7
0966 LET DM[DN]=DivMsg
0967 WPRINT W99Num,DivMsg
0968 STOP
1000 rem help
1999 STOP
*